home *** CD-ROM | disk | FTP | other *** search
- /*
- Gpen共通関数
- 別ヘッダ必要版
- */
-
- void umosv( int x1, int y1, int x2, int y2 )
- {
- mosv( x1*bi, y1*bi, (x2+1)*bi-1, (y2+1)*bi-1);
- }
-
- void biubox( int x1, int y1, int x2, int y2, int c1, int c2, int c3 )
- {
- uboxf(x1*bi-1, y1*bi-1, (x2+1)*bi, (y2+1)*bi, c1, c2, c3 );
- }
-
- void biboxbf( int x1, int y1, int x2, int y2, int c, int h, int h2 )
- {
- uboxf( x1*bi-h-1, y1*bi-h2-1, (x2+1)*bi+h, (y2+1)*bi+h, 15, 8, BCL );
- uboxf( x1*bi-1, y1*bi-1, (x2+1)*bi, (y2+1)*bi, 8, 15, c );
- }
-
- int gpx(int mx)
- {
- int mx2;
- mx2 = BX1 + ( mx/bi - NX4/2 + ix/2 - BX1 ) / ix * ix;
- if ( mx2 < BX1 ) mx2 = BX1;
- if ( mx2 + NX3 > BX2 ) mx2 = BX2 - NX3;
- return (mx2);
- }
-
- int gpy(int my)
- {
- int my2;
- my2 = BY1 + ( my/bi - NY4/2 + iy/2 - BY1 ) / iy * iy;
- if ( my2 < BY1 ) my2 = BY1;
- if ( my2 + NY3 > BY2 ) my2 = BY2 - NY3;
- return (my2);
- }
-
- void wget( void )
- {
- egbget( NX1, NY1, NX2, NY2, wb );
- }
-
- void wput( void )
- {
- egbput( NX1, NY1, NX2, NY2, wb );
- if (WX4!=NX4)
- egbputZ( WX1, WY1, WX2, WY2, NX4, NY4, wb );
- }
-
- void wkk( void )
- {
- wget();
- if (WX4!=NX4)
- egbputZ( WX1, WY1, WX2, WY2, NX4, NY4, wb );
- }
-
- void wkugiri( int t )
- {
- static int g=0;
- char a[1024];
- int i;
- if ( t == 2 )
- g = 0;
- if ( t == 3 )
- g = 1;
- if ( t & g )
- {
- line(WX1*bi, (WY1+KS)*bi, (WX2+1)*bi-1, (WY1+KS)*bi, 8 );
- for (i=1; i<NX4; i++)
- {
- line((WX1+KS*i)*bi, WY1*bi, (WX1+KS*i)*bi, (WY2+1)*bi-1, 8 );
- line((WX1+KS*i)*bi, (WY1+KS)*bi, (WX1+KS*i)*bi, (WY1+KS)*bi, 15 );
- }
- egbget( WX1*bi, (WY1+KS)*bi, (WX2+1)*bi-1, (WY1+KS)*bi, a );
- for (i=2; i<NY4; i++)
- {
- egbput(WX1*bi, (WY1+KS*i)*bi, (WX2+1)*bi-1, (WY1+KS*i)*bi, a);
- }
- } else {
- boxf( WX1*bi, WY1*bi, (WX2+1)*bi-1, (WY2+1)*bi-1, 0 );
- }
- }
-
- int page( int c )
- {
- static int v = 0;
- char t[12];
- egbget( BX1,BY1, BX2,BY2, vp);
- v += c;
- while (v < 0)
- v += vz + 1;
- while ( v > vz )
- v -= vz + 1;
- vp = vp0 + v * BX4 * BY4 * Cb / 8;
- egbput( BX1,BY1, BX2,BY2, vp);
- wpg(0);
- boxf( PAX1+1, PAY1+1, PAX2-1, PAY2-1, 8 );
- _itoa( v+1, t, 10 );
- symbol( PAX2-4-strlen(t)*8, PAY2-1, t, 16, 15 );
- wpg(1);
- return (v);
- }
-
- void pbtn( int mb )
- {
- int x, y, bt = 10;
- unsigned int t1, t2;
- t1 = MOS_getTime();
- while (mb)
- {
- page((mb & 1) ? 1 : (-1));
- do
- {
- t2 = MOS_getTime();
- MOS_rdpos(&mb,&x,&y);
- } while (t2-t1<bt && mb!=0);
- t1 = t2;
- if (bt>1)
- bt--;
- }
- }
-
- void bfgs( int mc )
- {
- char t[12];
- int p, x, y;
- p = EGB_getWritePage( 0, 0 );
- if (mc==1)
- {
- ix*=2;
- if (ix>=256/bi)
- ix = 1;
- iy*=2;
- if (iy>=256/bi)
- iy = 1;
- } else {
- if (ix==1)
- ix+=256/bi;
- if (iy==1)
- iy+=256/bi;
- ix/=2;
- iy/=2;
- }
- wpg(0);
- boxf( HX1+1, HY1+1, HX2-1, HY2-1, 0 );
- _itoa( ix, t, 10 );
- symbol( HX2-4-strlen(t)*8, HY2-1, t, 16, 15 );
- wpg(p);
- mbout( &p, &x, &y );
- }
-
- void mbclp( void )
- {
- MOS_getBtnXchg( &bc );
- boxf( PCX1, PCY1, PCX2, PCY2, mcl[0] );
- boxf( PLX1, PLY1, PLX2, PLY2, mcl[1+bc] );
- boxf( PRX1, PRY1, PRX2, PRY2, mcl[2-bc] );
- wpg(0);
- boxf( PCX1*bi+2, PCY1*bi-5, PCX1*bi+12, PCY1*bi-3, (mcl[0]>>15)*0xff );
- boxf( PLX1*bi+2, PLY1*bi-5, PLX1*bi+12, PLY1*bi-3, (mcl[1+bc]>>15)*0xff );
- boxf( PRX1*bi+2, PRY1*bi-5, PRX1*bi+12, PRY1*bi-3, (mcl[2-bc]>>15)*0xff );
- wpg(1);
- }
-
- void bfgp( int mb, int mx, int my ) /* バッファ編集窓間複写 */
- {
- int mx2, my2;
- mx2 = gpx(mx);
- my2 = gpy(my);
- if (mb == 1)
- {
- wget();
- egbput(mx2, my2, mx2+NX3, my2+NY3, wb );
- } else {
- egbget(mx2, my2, mx2+NX3, my2+NY3, wb );
- wput();
- }
- }
-
- void tclc(int mb, int mx, int my)
- {
- char t[4];
- egbget( mx/bi, my/bi, mx/bi, my/bi, t );
- mcl[mb] = WORD(t) & CF;
- mbclp();
- }
-
- void bcls(void)
- {
- int i;
- for (i = 0; i<BY4; i+=2)
- {
- /*
- line(BX1,BY1+i,BX2,BY1+i,0);
- line(BX1,BY2-i,BX2,BY2-i,0);
- */
- line(BX1,BY1+i,BX1+i,BY1,0);
- line(BX2,BY1+i,BX2-i,BY1,0);
- line(BX1,BY2-i,BX1+i,BY2,0);
- line(BX2,BY2-i,BX2-i,BY2,0);
- }
- }
-
- void wcls(void)
- {
- int i;
- for (i = 0; i<NY4; i+=2)
- {
- line(NX1,NY1+i,NX2,NY1+i,0);
- line(NX1,NY2-i,NX2,NY2-i,0);
- }
- wkk();
- }
-
- void aqx(void)
- {
- egbget(BX1,BY1,BX2,BY2,b);
- egbget(BX1+1,BY1,BX2+1,BY2,b+BX4*BY4*2);
- egbputZ(BX1,BY1,BX1+BX4/2-1,BY2,BX4,BY4,b);
- egbputZ(BX1+BX4/2,BY1,BX2,BY2,BX4,BY4,b+BX4*BY4*2);
- }
-
- void aqy(void)
- {
- egbget(BX1,BY1,BX2,BY2,b);
- egbget(BX1,BY1+1,BX2,BY2+1,b+BX4*BY4*2);
- egbputZ(BX1,BY1,BX2,BY1+BY4/2-1,BX4,BY4,b);
- egbputZ(BX1,BY1+BY4/2,BX2,BY2,BX4,BY4,b+BX4*BY4*2);
- }
-